// 引入框架
var express = require('express');
// 创建一个 Express 应用
var app = express();
// 使用express的app生成HTTP服务器
var http = require('http').Server(app);
// 创建IO对象.
var io = require('socket.io')(http);
// EJS模板引擎
app.set('view engine', 'ejs');
// 静态目录服务
app.use(express.static('./public'));

// 访问 '/' 加载进入聊天室
app.get('/', function (req, res) {
    res.render(
        'index',
        {
            // 获取访问用户的IP
            ip: req.ip
        }
    );
});

// socket.io 全双工实时通信广播
io.on('connection', function (socket) {
    // 接收外部传来的信息, 即客户端的输出
    socket.on('clientOut', function (clientMsg) {
        console.log(clientMsg);
        // 把接收到的客户端信息 原样广播输出, 即服务器的输出
        io.emit('serverOut', clientMsg);
    });
});

// 监听3000端口的请求访问
http.listen(3000);